# 1.列表的使用
# 1.1直接使用一对[]创建列表

# l = [1, 2, 3]

# 1.2使用list()函数创建一个空列表、转化为其他可迭代对象(数组、list、range)变为列表
# l = list(range(5))
# print(l)


# 1.3 创建空列表
l = list()

# 向列表中追加元素
l.append(1)
l.append(2)
l.append(3)

# 向列表中插入元素
l.insert(0, 11)

# 追加可迭代对象
# extend是将添加到尾部的可迭代对象中的元素，一个一个的追加到列表尾部
# l.extend(list(range(5)))

# append是将可迭代对象，作为整体追加到列表尾部
l.append(list(range(5)))
# print(l)


# 1.4 指定返回位置的索引并删除
# print(l.pop(1))
# print(l)

# 1.5 列表清空
# l.clear()

# 1.4 remove函数
# l.remove(1)
# print(l)


# Index函数是传入一个元素并返回这个元素在列表中的索引
# print(l.index(3))
# print(l.index(4))
#
# l = [1, 1, 2, 1]
# l_index = []
# # for i in l:
# # 找1的下标：从下标为0的位置开始找
# # print(l.index(1, 0))
#
# index_one = -1
# for _ in l:
#     if index_one < len(l) - 1:
#         index_one = l.index(1, index_one + 1)
#     l_index.append(index_one)
# print(l_index)


# del 删除内存，不能再访问地址。 而clear只是删除元素，不删除内存
# l = [1, 2, 3, 4]
# del l
# print(l)

# 1.5 修改列表元素
# l = [1, 2, 3, 4]
# l[l.index((2))] = 333
# print(l)

# 1.6 count 统计元素个数
# l = [1, 2, 2, 2, 2, 3, 4]
# print(l.count(2))

# 1.7 sort 排序
l = [1, 3, 2, 4, 7, 5]
# l.sort()
# print(l)

# 1.7降序排序
# l.sort(reverse=True)
# print(l)

# 1.7逆转函数
# l.sort()
# l.reverse()
# print(l)

# 1.8非原地操作(拷贝一份源数据)函数
# newList = sorted(l, reverse=True)
# print(l)
# print(newList)
